\pagenumbering{arabic}

\section{文档介绍}

\subsection{文档背景}


某快捷廉价酒店响应节能绿色环保理念，推行自助计费式中央温控系统，
使得入住的客户可以根据自身需求设定温度和风速的调节，同时房间内的控制面板显示所需支付的金额。
客户退房时酒店须出具空调使用的账单及详单。
空调运行期间，酒店的空调管理员能够监控各房间空调的使用状态；需要的情况下可以生成酒店及房间的空调使用统计报表。

\subsection{文档目的}

此文档旨在解读客户的目标与需求，并结合现实世界中的分布式温控系统，探索本项目的解决方案；
同时确定系统开发的技术路线，为之后的软件开发奠定基础。

\subsection{文档范围}

\begin{itemize}
	\item 结合现实情况，分析客户的各项需求
	\item 从需求出发，全面确定技术选型和路线
\end{itemize}

\section{需求分析}

\subsection{功能性需求}

\addtbl{table-user}

该系统在需求上同时满足两类用户的需求，中央空调和从控设备协调操作，
实现双方利益的最大化。

\addfig[1.0]{flow.png}{fig:flow}{模块}

\subsection{前端}

\subsubsection{登录/注册界面}

\begin{enumerate}
	\item 身份： 普通用户、管理员
	\item 登录：用户或管理员进入使用界面
	\item 注册：普通用户请求一个房间
\end{enumerate}

\subsubsection{使用界面}

\addtbl{table-normal-user}
\addtbl{table-admin}

\subsection{后端}

\subsubsection{控制模块}

收集数据，控制各空调终端。

\begin{table}[H]
    \centering
    \begin{tabular}{|l|l|}
    \hline
		\textbf{功能} & \textbf{描述} \\ \hline
        数据采集 & 采集各房间数据(温度、风速等……)，监控空调运行状态 \\ \hline
        空调控制 & \makecell[l]{接收各个从控端发出的温度设置请求和关机请求，\\并按照要求调节各空调终端} \\ \hline
    \end{tabular}
	\label{m1}
	\caption{控制模块}
\end{table}

\subsubsection{用户管理模块}

\begin{table}[H]
    \centering
    \begin{tabular}{|l|l|}
    \hline
		\textbf{功能} & \textbf{描述} \\ \hline
        管理员注册功能 & 允许新的管理人员注册账户并且设置登陆权限和密码 \\ \hline
        管理员鉴权 & 管理人员进行操作时的身份认定 \\ \hline
        用户注册和注销 & \makecell[l]{新用户入住酒店时提供身份认定和对应房间空调控制权，\\退房时注销相关用户并清空相应空调的缴费信息} \\ \hline
        统计功能 & \makecell[l]{统计用户的总数、身份信息、对应房间和空调缴费金额，\\以及管理员的总数和身份信息} \\ \hline
    \end{tabular}
	\label{m2}
	\caption{用户管理模块}
\end{table}

\subsubsection{计费模块}

统计各从控端的计费数据，提供支付管理功能。

根据空调使用情况，计算累计费用，使用\textbf{心跳包}的形式定期更新房间空调的实时需支付费用；

\begin{table}[H]
    \centering
    \begin{tabular}{|l|l|}
    \hline
        \textbf{功能} & \textbf{描述} \\ \hline
        计费统计 & 统计各房间所需支付金额 \\ \hline
        支付通知 & 发出缴费通知 \\ \hline
        收费管理 & 管理空调收费财务流水 \\ \hline
    \end{tabular}
	\label{m3}
	\caption{计费模块}
\end{table}

\subsubsection{整体流程}
\includegraphics[scale=0.70]{figure/FlowChart.pdf}

\subsection{非功能性需求}

\addtbl{table-non-func}

\section{技术选型与技术路线} 

\subsection{功能框架}

\begin{enumerate}
	\item 设置房间温度和空调风速
	\item 统计费用，生成账单
	\item 收集并输出统计数据
	\item 不同类型用户的登入管理：管理员、顾客
\end{enumerate}

% \addfig[0.7]{FlowChart.png}{fig:FlowChart}{流程图}
\addfig[0.9]{fig1.png}{fig:fig1}{整体架构}

\subsection{前端}
采用angular。
对比其他图形化方式，web前端可以开发出众多精美界面，功能强大，上手简单，安装方便，消耗资源少。
考虑到本次需求内容，web前端足够满足所有需求，并易于后续功能改进提升。
对比其他前端框架，angular包含服务、模板、数据双向绑定、模块化、国际化等丰富功能，非常完美的契合了本次工程内容。

\subsection{后端}
采用Java Spring。
Spring是一个支持快速开发Java EE应用程序的框架。它提供了一系列底层容器和基础设施，并可以和大量常用的开源框架无缝集成，开发Java EE应用程序。

\begin{itemize}
    \item 方便解耦，简化开发
    \item AOP编程的支持
    \item 声明式事务的支持
    \item 方便程序的测试
\end{itemize}

\subsection{版本管理与团队协作}
采用Git
是一款免费、开源的分布式版本控制系统，用于敏捷高效地处理任何或小或大的项目。它采用了分布式版本库的方式，不必服务器端软件支持，使源代码的发布和交流极其方便。

\begin{itemize}
	\item 版本管理。
	\item 方便统计团队成员的贡献
	\item 数据不容易丢失
\end{itemize}

\subsection{时间安排以及人员安排}

\begin{table}[H]
    \centering
    \begin{tabular}{|l|c|}
    \hline
        作业 & ddl \\ \hline
        系统解决方案    5\% & 2021-03-19 \\ \hline
        用户需求说明及领域模型  10\% & 2020-04-02 \\ \hline
        用例模型    25\% & 2021-04-16 \\ \hline
        设计模型-动态结构设计   25\% & 2021-05-14 \\ \hline
        设计模型-静态结构设计   5\% & 2020-05-21 \\ \hline
        系统验收    30\% & 2020-06-11 \\ \hline
    \end{tabular}
    \label{m4}
	\caption{时间分配}
\end{table}

人员安排：
\begin{itemize}
    \item 前端：2人
    \item 后端：3人
\end{itemize}